var express = require('express');
var router = express.Router();
const tools = require("../tools/index");
const sql = require("../sql/sql");
const userAddress = require("../sql/address");
const uuid =  require("node-uuid");

/**
* @apiGroup 地址
* @api {post} /api/address 设置地址数据
* @apiVersion 0.0.0
* @apiDescription 根据用户id存入用户输入的地址
* @apiParam {String} userId 要查询的用户Id
* @apiParam {Array} userMsg 用户地址信息
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccessExample {json} Success-Response:
* {
*    "state":200,
*    "title":"数据存入成功"
* 
* }
* @apiSampleRequest http://localhost:3000/api/address
*/

// 存入用户地址
router.post('/',function(req,res,next){
    // 获取前端数据
    const {userId, userMsg } = req.body;
    const token = req.headers.token;
    console.log(userMsg,1111)
    // 对登陆状态token进行验证
    tools.verify(token).then((a) => {
        // 插入订单数据
        sql.insert(userAddress, {
            addressId: uuid.v1(),
            userId,
            userMsg,
            state: 0
        }).then(() => {
            res.send({
                state: 200,
                title: "地址添加成功"
            })
        })
    }).catch(()=>{
        res.send({
            state: 10086,
            title: "登陆信息已失效，请重新登陆123"
        })
    })
})
/**
* @apiGroup 地址
* @api {get} /api/address/get 获取地址数据
* @apiVersion 0.0.0
* @apiDescription 根据用户id查询用户地址
* @apiParam {String} userId 要查询的用户Id
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {object} data 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "state":200,
*    "title":"数据存入成功"
*    "data":"[{},{}]"
* }
* @apiSampleRequest http://localhost:3000/api/address/get
*/

// 存入用户地址
router.get('/get',function(req,res,next){
    // 获取前端数据
    const {userId} = req.query;
    const token = req.headers.token;
    // 对登陆状态token进行验证
    tools.verify(token).then((a) => {
        // 插入订单数据
        sql.find(userAddress, {userId}).then(data => {
            res.send({
                state: 200,
                title: "地址添加成功",
                data
            })
        })
    }).catch(()=>{
        res.send({
            state: 10086,
            title: "登陆信息已失效，请重新登陆123"
        })
    })
})

/**
* @apiGroup 地址
* @api {post} /api/address/updateAddress 修改地址数据
* @apiVersion 0.0.0
* @apiDescription 根据用户id和地址Id修改用户地址
* @apiParam {String} userId 要查询的用户Id
* @apiParam {String} addressId 要查询的地址Id
* @apiParam {Array} userMsg 要添加的数据
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {object} data 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "state":200,
*    "title":"数据修改成功"
* }
* @apiSampleRequest http://localhost:3000/api/address/updateAddress
*/

// 存入用户地址
router.post('/updateAddress',function(req,res,next){
    // 获取前端数据
    const {userId, addressId, userMsg} = req.body;
    const token = req.headers.token;
    // 对登陆状态token进行验证
    tools.verify(token).then((a) => {
        // 插入订单数据
        sql.update(userAddress, {userId,addressId}, {userMsg}).then(() => {
            res.send({
                state: 200,
                title: "数据修改成功"
            })
        })
    }).catch(()=>{
        res.send({
            state: 10086,
            title: "登陆信息已失效，请重新登陆123"
        })
    })
})



/**
* @apiGroup 地址
* @api {post} /api/address/del 删除地址数据
* @apiVersion 0.0.0
* @apiDescription 根据用户id和地址Id修改用户地址
* @apiParam {String} userId 要删除的用户Id
* @apiParam {String} addressId 要删除的地址Id
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {object} data 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "state":200,
*    "title":"数据修改成功"
* }
* @apiSampleRequest http://localhost:3000/api/address/del
*/

// 存入用户地址
router.post('/del',function(req,res,next){
    // 获取前端数据
    const {userId, addressId} = req.body;
    const token = req.headers.token;
    // 对登陆状态token进行验证
    tools.verify(token).then((a) => {
        // 插入订单数据
        sql.delete(userAddress, {userId,addressId}).then(() => {
            res.send({
                state: 200,
                title: "数据删除成功"
            })
        })
    }).catch(()=>{
        res.send({
            state: 10086,
            title: "登陆信息已失效，请重新登陆123"
        })
    })
})
/**
* @apiGroup 地址
* @api {post} /api/address/updateState 修改地址数据
* @apiVersion 0.0.0
* @apiDescription 根据用户id和地址Id修改用户地址
* @apiParam {String} userId 要修改的用户Id
* @apiParam {String} addressId 要修改的地址Id
* @apiSuccess {number} state 请求状态
* @apiSuccess {string} title 请求说明
* @apiSuccess {object} data 请求数据
* @apiSuccessExample {json} Success-Response:
* {
*    "state":200,
*    "title":"数据修改成功"
* }
* @apiSampleRequest http://localhost:3000/api/address/updateState
*/

// 修改用户地址状态肥
router.post('/updateState',function(req,res,next){
    // 获取前端数据
    const {userId, addressId} = req.body;
    const token = req.headers.token;
    // 对登陆状态token进行验证
    tools.verify(token).then((a) => {
        // 插入订单数据
      sql.find(userAddress, {userId, addressId}).then(data => {
        console.log(data[0].addressId)
        const arr = data[0].userMsg[0].isDefault
        console.log(arr)
        // sql.update(userAddress, {userId, addressId}, {
        //     data[0].userMsg[0].isDefault: true
        // }).then(() => {
        //     res.send({
        //       state: 200,
        //       title: "数据修改成功"
        //     })
        // })
      })
    }).catch(()=>{
        res.send({
            state: 10086,
            title: "登陆信息已失效，请重新登陆123"
        })
    })
})
module.exports = router;
